package com.dituo.esac.util;

import com.dituo.core.constant.CommonConstant;
import com.dituo.core.po.UserBasePO;
import com.dituo.core.util.DituoStringUtil;
import com.dituo.esac.dto.EsacExportDTO;
import com.dituo.esac.dto.EsacSearchDTO;

public class EsacParamUtils {

	/**
	 * 查询设置用户信息
	 * 
	 * @param esacSearchDTO
	 * @param userBase
	 * @return
	 */
	public static EsacSearchDTO setUserBaseParam(EsacSearchDTO esacSearchDTO, UserBasePO userBase) {
		
		esacSearchDTO.setOrgId(userBase.getOrgId());
		
		return esacSearchDTO;
	}
	
	/**
	 * 查询设置分页信息
	 * 
	 * @param esacSearchDTO
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public static EsacSearchDTO setPageParam(EsacSearchDTO esacSearchDTO, Integer pageNum, Integer pageSize) {
		
		if (null != pageNum) {
			esacSearchDTO.setPageNum(pageNum);
		} else {
			esacSearchDTO.setPageNum(CommonConstant.DEFAULT_PAGE_NUM);
		}
		
		if (null != pageSize) {
			esacSearchDTO.setPageSize(pageSize);
		} else {
			esacSearchDTO.setPageSize(CommonConstant.DEFAULT_PAGE_SIZE);
		}

		return esacSearchDTO;
	}
	
	/**
	 * 查询条件封装实体类
	 * 
	 * @param pageSize 每页显示数
	 * @param pageNum 页面
	 * @param eventType 事件状态
	 * @param nameOrEuid 地址和设备号查询条件
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 * * @param deviceStatus 设备状态 1-在线 2-离线
	 * @param userBase 登陆人信息
	 * @return esacExportDTO 
	 */
	public static EsacExportDTO setFiredoorNodeSearchParam(Integer pageNum, Integer pageSize, Integer eventType, 
			String nameOrEuid, String startTime, String endTime,  Integer deviceStatus, UserBasePO userBase) {
		EsacExportDTO esacExportDTO = new EsacExportDTO();
		
		setDeviceUserBaseParam(esacExportDTO, userBase);
		setDevicePageParam(esacExportDTO, pageNum, pageSize);
		setDeviceDateRangeParam(esacExportDTO, startTime, endTime);
		
		if (null != eventType) {
			esacExportDTO.setEventType(eventType);
		}
		
		if (DituoStringUtil.notEmpty(nameOrEuid)) {
			esacExportDTO.setNameOrEuid(nameOrEuid);
		}
		
		if (null != deviceStatus) {
			esacExportDTO.setDeviceStatus(deviceStatus);
		}
		
		return esacExportDTO;
	}
	
	/**
	 * 查询设置用户信息
	 * 
	 * @param esacExportDTO
	 * @param userBase
	 * @return
	 */
	public static EsacExportDTO setDeviceUserBaseParam(EsacExportDTO esacExportDTO, UserBasePO userBase) {
		
		esacExportDTO.setOrgId(userBase.getOrgId());
		esacExportDTO.setOrgType(userBase.getOrgType());
		esacExportDTO.setRoleAreaCode(userBase.getRoleAreaCode());
		
		return esacExportDTO;
	}
	
	/**
	 * 查询设置分页信息
	 * 
	 * @param esacExportDTO
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public static EsacExportDTO setDevicePageParam(EsacExportDTO esacExportDTO, Integer pageNum, Integer pageSize) {
		
		if (null != pageNum) {
			esacExportDTO.setPageNum(pageNum);
		} else {
			esacExportDTO.setPageNum(CommonConstant.DEFAULT_PAGE_NUM);
		}
		
		if (null != pageSize) {
			esacExportDTO.setPageSize(pageSize);
		} else {
			esacExportDTO.setPageSize(CommonConstant.DEFAULT_PAGE_SIZE);
		}

		return esacExportDTO;
	}
	
	/**
	 * 设置开始结束时间
	 * 
	 * @param esacExportDTO
	 * @param startTime yyyy-MM-dd
	 * @param endTime yyyy-MM-dd
	 * @return
	 */
	public static EsacExportDTO setDeviceDateRangeParam(EsacExportDTO esacExportDTO, String startTime, String endTime) {
		
		if (DituoStringUtil.notEmpty(startTime) && DituoStringUtil.notEmpty(endTime)) {
			esacExportDTO.setStartTime(startTime + CommonConstant.TIME_START_STR);
			esacExportDTO.setEndTime(endTime + CommonConstant.TIME_END_STR);
		}

		return esacExportDTO;
	}
}
